package ejb.com.bbva.cbm.service;
import java.util.HashMap;
import java.util.List;

import ejb.cbm.admin.entity.ParametroEntity;
import ejb.cbm.operatoria.entity.ClienteEntity;
import ejb.cbm.operatoria.entity.OperacionChequeEntity;
import ejb.cbm.operatoria.entity.OperacionEfectivoEntity;
import ejb.com.bbva.cbm.dominio.Caja;
import ejb.com.bbva.cbm.dominio.CuentaEntityDTO;
import ejb.com.bbva.cbm.dominio.TraspasoCajaEntity;
import ejb.com.bbva.cbm.dominio.TraspasoConfirmacionEntity;
import ejb.com.bbva.cbm.util.DatosConsultaSaldoFinal;
import ejb.com.bbva.cbm.util.DatosTraspasoCaja;

//@Local
public interface OperativaServiceLocal {

	public List<ParametroEntity> obtenerTiposDocumento() throws Exception;
	public List<ParametroEntity> obtenerTiposOperacion() throws Exception;
	public List<ClienteEntity> buscarCliente(String tipoDocumento,String numeroDocumento,String nombre,
			 String primerApellido,String segundoApellido,String razonSocial) throws Exception;
	public List<HashMap<String,String>> buscarCliente(String numeroCuenta,String numeroTarjeta,String tipoDocumento,String numeroDocumento,
			 String nombre,String primerApellido,String segundoApellido,String razonSocial) throws Exception;
	
	public List<HashMap<String,String>> buscarTarjeta(String numeroTarjeta,String tipoDocumento,String numeroDocumento,
			 String nombre,String primerApellido,String segundoApellido) throws Exception;
	
    public List<ParametroEntity> obtenerTiposDivisas() throws Exception;
    public List<ParametroEntity> obtenerTiposCheques() throws Exception;
	
	public void grabarDepositoCheques(OperacionChequeEntity operacion, String usuario) throws Exception;
	public void grabarDepositoEfectivo(OperacionEfectivoEntity efectivo) throws Exception;
	
	public CuentaEntityDTO obtenerSaldoCuenta(String cuenta) throws Exception;
    
    /***************************************************************************************************
     * SUB MODULO DE CAJA Y BOVEDA
     ***************************************************************************************************/
	public Caja obtenerCajaOperacionPorId(long operacionId) throws Exception;
	
	public List<Caja> obtenerDatosAperturaCaja(String oficinaId, String terminalId, long tipoId) throws Exception;
	public void grabarDatosAperturaCaja(Caja caja, String usuario) throws Exception;
	
	public List<Caja> obtenerDatosCierreCaja(String oficinaId, String terminalId, long tipoId) throws Exception;
	public void grabarDatosCierreCaja(Caja caja, String usuario) throws Exception;
	
	public DatosTraspasoCaja obtenerDatosTraspasoCaja(String oficinaId, String terminalId, long tipoId) throws Exception;
	public void grabarDatosTraspasoCaja(TraspasoCajaEntity traspaso, String usuario) throws Exception;
	
	public List<TraspasoConfirmacionEntity> obtenerDatosConfirmacionTraspasoCaja(String oficinaId, String terminalId, long tipoId) throws Exception;
	public void grabarDatosConfirmacionTraspasoCaja(long operacionId, long estadoId, String usuario) throws Exception;
	
	public DatosConsultaSaldoFinal obtenerDatosConsultaSaldosFinales(String oficinaId) throws Exception;
}
